package com.sumainfor.common.util;

import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.HashMap;
import java.util.Map;

/**
 * 唐巢&大华智能电表
 * @ClassName: InteDeviceDaHuaUtil
 * @author xzzhao
 * @date 2019年3月11日
 */
public class InteDeviceDaHuaUtil {
    static Logger  log = LoggerFactory.getLogger(InteDeviceDaHuaUtil.class);// 日志
    /**
     * 获取token
     * @param param
     * @return
     */
    public static Map<String,Object> getToken(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getToken";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 根据token和设备id查询余量/已使用量
     * @param param
     * @return
     */
    public static Map<String,Object> getRemainById(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getRemainById";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     *getAllRemainByLevel1(查询智能设备的电表度数)
     * @param param
     * @return
     */
    public static Map<String,Object> getAllRemainByLevel1(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getAllRemainByLevel1";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }



    /**
     * 根据token和设备id金额充值金额、唯一交易号，对某个设备id充值
     * @param param
     * @return
     */
    public static Map<String,Object> payAmountById(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/payAmountById";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 根据token和设备id和交易号，查询充值结果
     * @param param
     * @return
     */
    public static Map<String,Object> getPayResultById(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getPayResultById";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 根据token和设备id，查询用户基本信息
     * @param param
     * @return
     */
    public static Map<String,Object> getBaseInfoById(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getBaseInfoById";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 查询少于指定剩余电量的用户
     * @param param
     * @return
     */
    public static Map<String,Object> getAlarmInfo(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getAlarmInfo";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }
    /**
     * 查询一个或多个用户月的用电量
     * @param param
     * @return
     */
    public static Map<String,Object> getMonthData(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getMonthData";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 查询一个或多个用户一个月每天的用电量(接口有问题)
     * @param param
     * @return
     */
    public static Map<String,Object> getDayData(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getDayData";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 查询一个或多个用户的充值记录
     * @param param
     * @return
     */
    public static Map<String,Object> getPayHis(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getPayHis";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 查询所有异常设备
     * @param param
     * @return
     */
    public static Map<String,Object> getTcPAlarm(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getTcPAlarm";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 表计模式控制
     * @param param
     * @return
     */
    public static Map<String,Object> controlIntefer(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/controlIntefer";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 表剩余量清零
     * @param param
     * @return
     */
    public static Map<String,Object> clearIntefer(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/clearIntefer";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 表剩余量清零
     * @param param
     * @return
     */
    public static Map<String,Object> clearIntefers(Map<String,Object> param,JSONObject bodyJson){
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/clearIntefer";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPost(url,param,bodyJson);
        System.out.println("返回的参数:"+params);
        return params;


    }






    /**
     * 根据token和某一个字段查询用户基本信息
     * @param param
     * @return
     */
    public static Map<String,Object> getBaseInfoByField(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getBaseInfoByField";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    /**
     * 根据token和设备id查询当前数据
     * @param param
     * @return
     */
    public static Map<String,Object> getCurrentDataByMeterAdrr(Map<String,Object> param) {
        // 装配请求参数
        String url=InteDeviceDaHuaConfig.IP+"/userInfo/getCurrentDataByMeterAdrr";
        //发送请求
        Map<String,Object> params=HttpUtilBee.doPostParams(url,param);
        System.out.println("返回的参数:"+params);
        return params;
    }

    public static void main(String[] args) {
        /*获取token*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("pw",InteDeviceDaHuaConfig.PW);
//        params.put("userName",InteDeviceDaHuaConfig.USERNAME);
//        InteDeviceDaHuaUtil.getToken(params);
        /*根据token和设备id查询余量/已使用量*/
        Map<String,Object> params=new HashMap<String, Object>();
        params.put("token","6937e211-d23e-4df1-9a11-eb71e03a4f65");
        params.put("meter_id","16042306");
        InteDeviceDaHuaUtil.getRemainById(params);
        /*根据token和设备id查询余量/已使用量*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        InteDeviceDaHuaUtil.getAllRemainByLevel1(params);
        /*根据token和设备id金额充值金额、唯一交易号，对某个设备id充值*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("meter_id","18015806");
//        params.put("amount","100");
//        params.put("tra_id","1231");
//        InteDeviceDaHuaUtil.payAmountById(params);
        /*根据token和设备id金额充值金额、唯一交易号，对某个设备id充值*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("meter_id","18015806");
//        params.put("tra_id","1231");
//        InteDeviceDaHuaUtil.getPayResultById(params);
        /*根据token和设备id，查询用户基本信息*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("meter_id","18015806");
//        InteDeviceDaHuaUtil.getBaseInfoById(params);
    /*    查询少于指定剩余电量的用户*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("alarmV","18015806");
//        InteDeviceDaHuaUtil.getAlarmInfo(params);
        /*查询一个或多个用户的月的用电量*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("meter_id","18015806");
//        params.put("read_time","2017-09");
//        params.put("end_time","2017-11");
//        InteDeviceDaHuaUtil.getMonthData(params);
            /*查询一个或多个用户一个月每天的用电量*/
//         Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("meter_id","18015806");
//        params.put("read_time","2017-09");
//        InteDeviceDaHuaUtil.getDayData(params);
        /*查询一个或多个用户充值记录*/
//         Map<String,Object> params=new HashMap<String, Object>();
//        params.put("token","6937e211-d23e-4df1-9a11-eb71e03a4f65");
//        params.put("meter_id","16042310");
//        params.put("read_time","2019-09-28");
//        params.put("end_time","2019-09-30");
//        InteDeviceDaHuaUtil.getPayHis(params);
            /*查询所有异常设备*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        InteDeviceDaHuaUtil.getTcPAlarm(params);
   /*     表计模式控制*/
//        Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("open_close","1");
//        params.put("meter_id","18015806");
//        params.put("tra_id","1231");
//        InteDeviceDaHuaUtil.controlIntefer(params);
        /*     表剩余量清零*/
/*        Map<String,String> params=new HashMap<String, String>();
        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
        params.put("meter_id","18015806");
        params.put("tra_id","1231");
        InteDeviceDaHuaUtil.clearIntefer(params);*/
        /*根据token和某一个字段查询用户基本信息*/
//      Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("field","meter_address");
//        params.put("value","67003153");
//        InteDeviceDaHuaUtil.getBaseInfoByField(params);
        /*根据token和设备id查询当前数据*/
//      Map<String,String> params=new HashMap<String, String>();
//        params.put("token","ff18d26f-04ad-4c8c-8b0f-d9e6401bc86c");
//        params.put("meter_id","18015806");
//        InteDeviceDaHuaUtil.getCurrentDataByMeterAdrr(params);


    }
}